go/types.operand.expr (field)

79 uses

	go/types (current package)
		assignments.go#L87: 			check.updateExprVal(x.expr, val)
		assignments.go#L91: 			check.updateExprType(x.expr, newType, false)
		assignments.go#L234: 		if sel, ok := x.expr.(*ast.SelectorExpr); ok {
		assignments.go#L238: 				check.errorf(&x, UnaddressableFieldAssign, "cannot assign to struct field %s in map", ExprString(x.expr))
		assignments.go#L242: 		check.errorf(&x, UnassignableOperand, "cannot assign to %s (neither addressable nor a map index expression)", x.expr)
		builtins.go#L604: 					check.errorf(a, MismatchedTypes, invalidArg+"mismatched types %s (previous argument) and %s (type of %s)", x.typ, a.typ, a.expr)
		builtins.go#L630: 			check.updateExprType(a.expr, x.typ, true)
		call.go#L40: 		x.expr = ix.orig // if we don't have an index expression, keep the existing expression of x
		call.go#L104: 			args = []*operand{{mode: value, expr: expr, typ: T.sig}}
		call.go#L126: 	sig = check.instantiateSignature(x.Pos(), x.expr, sig, targs, xlist)
		call.go#L183: 		x.expr = call.Fun
		call.go#L193: 		x.expr = call
		call.go#L226: 		x.expr = call
		call.go#L235: 		x.expr = call
		call.go#L258: 		x.expr = call
		call.go#L275: 			x.expr = call
		call.go#L286: 			x.expr = call
		call.go#L329: 	x.expr = call
		call.go#L399: 				x.expr = ix.orig
		call.go#L414: 					resList[i] = &operand{mode: value, expr: e, typ: v.typ}
		call.go#L434: 					x.expr = ix.orig
		call.go#L524: 			at = args[npars].expr // report at first extra argument
		call.go#L646: 			arg.typ = check.instantiateSignature(call.Pos(), arg.expr, asig, targs[j:k], nil) // TODO(gri) provide xlist if possible (partial instantiations)
		call.go#L775: 			x.expr = e
		call.go#L824: 			check.errorf(e.Sel, AmbiguousSelector, "ambiguous selector %s.%s", x.expr, sel)
		call.go#L844: 		check.errorf(e.Sel, MissingFieldOrMethod, "%s.%s undefined (%s)", x.expr, sel, why)
		call.go#L857: 			check.errorf(e.Sel, MissingFieldOrMethod, "%s.%s undefined (type %s has no method %s)", x.expr, sel, x.typ, sel)
		call.go#L977: 	x.expr = e
		call.go#L982: 	x.expr = e
		const.go#L45: 		op := opName(x.expr)
		const.go#L302: 		check.updateExprVal(x.expr, val)
		const.go#L306: 		check.updateExprType(x.expr, newType, false)
		conversions.go#L119: 		check.updateExprType(x.expr, final, true)
		errors.go#L304: 		if x.expr != nil {
		errors.go#L306: 			return posSpan{pos, pos, x.expr.End()}
		expr.go#L185: 		x.expr = e
		expr.go#L186: 		check.overflow(x, opPos(x.expr))
		expr.go#L570: 		check.updateExprType(x.expr, Default(x.typ), true)
		expr.go#L571: 		check.updateExprType(y.expr, Default(y.typ), true)
		expr.go#L598: 		check.errorf(x, code, "invalid case %s in switch on %s (%s)", x.expr, y.expr, cause) // error position always at 1st operand
		expr.go#L600: 		check.errorf(errOp, code, invalidOp+"%s %s %s (%s)", x.expr, op, y.expr, cause)
		expr.go#L710: 			x.expr = e
		expr.go#L711: 			check.overflow(x, opPos(x.expr))
		expr.go#L736: 			if info, found := check.untyped[x.expr]; found {
		expr.go#L738: 				check.untyped[x.expr] = info
		expr.go#L790: 		x.expr = y.expr
		expr.go#L864: 		x.expr = e
		expr.go#L1012: 		check.errorf(x.expr, WrongTypeArgCount, "cannot use generic %s %s without instantiation", what, x.expr)
		expr.go#L1060: 		x.expr = e
		expr.go#L1150: 			x.expr = e
		expr.go#L1180: 	x.expr = e
		expr.go#L1185: 	x.expr = e
		expr.go#L1278: 			list[i] = &operand{mode: value, expr: e, typ: v.typ}
		expr.go#L1286: 		x2 := &operand{mode: value, expr: e, typ: Typ[UntypedBool]}
		index.go#L101: 		x.expr = e.orig
		index.go#L175: 				x.expr = e.orig
		infer.go#L134: 				err.addf(arg, "type %s of %s does not match %s (cannot infer %s)", targ, arg.expr, tpar, typeParamsString(tparams))
		infer.go#L147: 				err.addf(arg, "inferred type %s for %s does not match type %s of %s", inferred, tpar, targ, arg.expr)
		infer.go#L149: 				err.addf(arg, "type %s of %s does not match inferred type %s for %s", targ, arg.expr, inferred, tpar)
		infer.go#L152: 			err.addf(arg, "type %s of %s does not match %s", targ, arg.expr, tpar)
		literals.go#L79: 	x.expr = e // make sure that check.overflow below has an error position
		literals.go#L80: 	check.overflow(x, opPos(x.expr))
		operand.go#L61: 	expr ast.Expr
		operand.go#L71: 	if x.expr == nil {
		operand.go#L74: 	return x.expr.Pos()
		operand.go#L135: 	if x.expr != nil {
		operand.go#L136: 		expr = ExprString(x.expr)
		range.go#L58: 				expr: rangeVar,
		range.go#L141: 				y.expr = lhs // we don't have a better rhs expression to use here
		range.go#L182: 				y.expr = lhs // we don't have a better rhs expression to use here
		recording.go#L34: 	assert(x.expr != nil && typ != nil)
		recording.go#L39: 		check.rememberUntyped(x.expr, false, x.mode, typ.(*Basic), val)
		recording.go#L41: 		check.recordTypeAndValue(x.expr, x.mode, typ, val)
		stmt.go#L649: 			x.expr = &ast.Ident{NamePos: s.Body.Lbrace, Name: "true"}
		typexpr.go#L23: 	x.expr = e